package vista;

import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.table.TableModel;

public class InterfazGraficaBuscarCategoria 
{
	private JButton btnAceptar,btnCancelar;
	private JTextField txtCodigoCategoria,txtNombreCorto;
	private JTable tabla;
    private VentanaDialogo ventanaDialogo;
    
    
    public InterfazGraficaBuscarCategoria(VentanaIndependiente ventana)
    {
    	ImageIcon imgAceptar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "aceptar.png"));
	    ImageIcon imgCancelar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "cancelar.png"));
	    
    	FabricaAbstractaVentana fabricaVentanas= FabricaAbstractaVentana.getInstance();
  		ventanaDialogo= fabricaVentanas.crearVentanaDependiente(ventana);
  		
  		ventanaDialogo.asignarTitulo("Buscar Categoria");
  		
  		JToolBar barraHerramientas= new JToolBar();
		
		JLabel lblCodigoCategoria= new JLabel("Codigo: ");
		JLabel lblNombreCorto= new JLabel("Nombre Corto: ");
		
		btnAceptar= new JButton("ACEPTAR",imgAceptar);
		btnCancelar= new JButton("CANCELAR",imgCancelar);
		
		txtCodigoCategoria= new JTextField();
		txtNombreCorto= new JTextField();
		
		txtCodigoCategoria.setName("txtCodigoCategoria");
		txtNombreCorto.setName("txtNombreCorto");
		
		txtCodigoCategoria.setEditable(false);
		txtNombreCorto.setEditable(false);
		
		tabla= new JTable();
		JScrollPane scroll = new JScrollPane(tabla,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		

		btnAceptar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnAceptar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnAceptar.setOpaque(false);
	    btnAceptar.setBorderPainted(false); 
		
		
		btnCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
	    btnCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
	    btnCancelar.setOpaque(false);
	    btnCancelar.setBorderPainted(false);

	    barraHerramientas.setFloatable(false);
	    barraHerramientas.setOpaque(false);
	    barraHerramientas.setBorderPainted(false);
		
		barraHerramientas.add(btnAceptar);
		barraHerramientas.addSeparator();
		barraHerramientas.addSeparator();
		barraHerramientas.addSeparator();
		barraHerramientas.addSeparator();
		barraHerramientas.add(btnCancelar);
		
		lblCodigoCategoria.setFont(new Font(Font.DIALOG,Font.BOLD,15));
		lblNombreCorto.setFont(new Font(Font.DIALOG,Font.BOLD,15));
		
	    ventanaDialogo.agregarComponente(lblCodigoCategoria,25, 25, 120, 20);
	    ventanaDialogo.agregarComponente(lblNombreCorto, 25,85, 120, 20);
	    ventanaDialogo.agregarComponente(txtCodigoCategoria, 175, 20, 150, 25);
	    ventanaDialogo.agregarComponente(txtNombreCorto, 175, 80, 200, 25);
	    ventanaDialogo.agregarComponente(scroll, 25, 130, 350, 170);
	    ventanaDialogo.agregarComponente(barraHerramientas, 100, 310, 200, 90);
	    
	    ventanaDialogo.asignarTamanio(420, 450);
    }
	
    public void visualizarVentana()
	{
		ventanaDialogo.visualizar();
	}
	
    
	public void descargarMemoria()
	{
		ventanaDialogo.descargarMemoria();
	}
    
    public void addListener(WindowListener escuchador)
	{
		ventanaDialogo.addListener(escuchador);
	}
	
	public void addListener(ActionListener escuchador)
	{
		btnAceptar.addActionListener(escuchador);
		btnCancelar.addActionListener(escuchador);
	}
	
	public void addListener(MouseListener escuchador)
	{
		tabla.addMouseListener(escuchador);
		
	}
	
	public int getFilaSeleccionada()
	{
		return tabla.getSelectedRow();
	}
	
	public String getCodigo()
	{
		return txtCodigoCategoria.getText();
	}
	
	public String getNombre()
	{
		return txtNombreCorto.getText();
	}
	
	public void asignarDatosTabla(TableModel modeloTabla)
	{
		 tabla.setModel(modeloTabla);		
	}
	
	public void asignarCodigo(String codigo)
	{
		txtCodigoCategoria.setText(codigo);
	}
	
	public void asignarNombre(String nombre)
	{
		txtNombreCorto.setText(nombre);
	}
	

}
